package cn.wolfcode.trip.api.controller;


import cn.wolfcode.trip.base.domain.QuestionReply;
import cn.wolfcode.trip.base.domain.ReplyComment;
import cn.wolfcode.trip.base.query.QueryObject;
import cn.wolfcode.trip.base.service.IQuestionReplyService;
import cn.wolfcode.trip.base.service.IReplyCommentService;
import cn.wolfcode.trip.base.util.JsonResult;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


@RestController
@RequestMapping("/questionReplies")
public class QuestionReplyController {
    @Autowired
    private IQuestionReplyService questionReplyService;
    @Autowired
    private IReplyCommentService replyCommentService;

    /**
     * 根据回答id查询对应的回答
     * 请求路径  /questions/{replyId}
     * 请求方式  get
     * 请求参数  Long replyId
     * 返回结果  QuestionReply
     */

    @GetMapping("/{id}")
    public QuestionReply getReplyById(@PathVariable Long id) {
        return questionReplyService.getReplyById(id);
    }


    /**
     * 查询回答对应的评论列表
     * 请求路径  /questions/replyComments
     * 请求方式  get
     * 请求参数  ReplyComment,QueryObject
     * 返回结果  PageInfo
     */
    @GetMapping("/replyComments")
    public PageInfo<ReplyComment> query(ReplyComment rc, QueryObject qo) {
        return replyCommentService.listById(rc, qo);
    }

    /**
     * 根据评论者id查询对应的评论列表
     * 请求路径  /questionReplies/users/replyComments
     * 请求方式  get
     * 请求参数  ReplyComment,QueryObject
     * 返回结果  PageInfo
     */
    @GetMapping("/users/replyComments")
    public PageInfo<ReplyComment> queryByUserId(ReplyComment rc, QueryObject qo) {
        return replyCommentService.listByUserId(rc, qo);
    }


    /**
     * 保存回答对应的评论
     * 请求路径  /questions/replyComments
     * 请求方式  post
     * 请求参数  ReplyComment
     * 返回结果  JsonResult
     */
    @PostMapping("/replyComments")
    public JsonResult saveOrUpdate(ReplyComment rc) {
        replyCommentService.saveOrUpdate(rc);
        return new JsonResult();
    }
}
